#include <search.h>
#include "tsearch.h"

void *tfind(const void *key, void *const *rootp,
    int(*cmp)(const void *, const void *))
{
    if (!rootp)
        return 0;

    struct node *n = *rootp;
    for (;;) {
        if (!n)
            break;
        int c = cmp(key, n->key);
        if (!c)
            break;
        n = n->a[c>0];
    }
    return n;
}
